Many applications benefit from receiving input in the form of voice commands or queries. This is especially true for applications running on mobile devices, such as cell phones, where entering input through a small keypad or other device manipulated by a user's fingers may be difficult due to the reduced size of the device. Similarly, if a mobile device is used to access an application running on another device (e.g., an email server, a map/directions server, or a telephone directory server), transmitting voice commands to the application instead of entering the commands through a small keypad, etc, may be much easier for the user.
In order for an application to act on verbal input, a speech recognizer can convert the verbal input into symbolic representations for use by the application. Some current speech recognizers may use a single recognition system that attempts to identify possible speech within the verbal input. Use of a single speech recognition system may limit the accuracy of the speech identification to the accuracy associated with the single speech recognition system. Other current speech recognizers may use sequential speech recognitions, where two or more passes are performed on the verbal input to determine what speech is most likely represented by the verbal input. The use of multiple passes may increase the time required to generate a final speech recognition result.
In yet other current speech recognizers, multiple speech recognition systems can each completely process the verbal input and then the output results. This use of multiple speech recognition systems also may increase the time required to generate a final result because the length of the processing time is determined by the slowest speech recognition system (and/or by the slowest computers executing the speech recognition algorithms).